Content management (CM) is defined as software that builds, organizes, manages, and stores collections of digital works in any medium or format. Content management refers to the process of handling various types of structured and unstructured information, including images and documents that may contain billing data, customer service information, or other types of content. Content management further refers to the process of capturing, storing, sorting, codifying, integrating, updating and protecting any and all information. Studies estimate that more than 75% of enterprise data is unstructured and document-related.
Key technologies in the content management market comprise traditional document management, Web content management, digital asset management, and records management. Users of content management are in document-heavy industries, where document management is often essential for regulatory or compliance reasons. A real-time enterprise needs content management so it can create, access, and transfer information, as needed, to meet business goals of the enterprise.
Current content comprises many different forms of unstructured data that requires management:                Dynamic Web content—business data in relational databases and personalized information;        Business documents—ranging from contracts and invoices to forms and e-mail that facilitate internal back-office processes and enable direct external communication with customers, partners, and suppliers;        Rich media—such as digital audio and video that is rapidly transforming areas of training, education, marketing, and customer relationship management in many industries;        Records Management—driven by government and industry regulations to effectively document processes, audit trails, and data retention; and        Team Collaboration Content—Web collaboration sessions or threads, webcast content, and instant messages that are rapidly becoming an important information asset.        
While outwardly dissimilar, these forms of enterprise content have similar management needs. To be truly useful, a content management solution is required to address requirements for mass storage, search and access, personalization, integration with business applications, access and version control, and rapid delivery over the Internet. From a data point of view, the difference from conventional relational databases is the support for unstructured content.
Business rule processing is a vital aspect of content management and enterprise information systems. A business rule is a statement that defines or constraints some aspect of a business. The business rule asserts business structure; the business rule further controls or influences the behavior of the business. These constraints are present in many business applications such as negotiations, including procurements and auction configuration, financial applications, catalogs and storefronts, as well as security authorization and trust management. Specific examples of business rules are:                Free shipping for orders >$20;        If state is Ohio, optional credit insurance form is required;        Names of signers on a contract are required to match approved names in a customer database;        Certain fields are required such as gross annual revenue, signature, etc.; and        Security contract cannot exceed approved credit limit.        
Conventional business rules applications comprise a standard vocabulary for knitting together business organizations and constraining various business behaviors. One conventional technology utilizes business rule classification methodologies and specification languages to model business rules. Another conventional technology comprises a conceptual model that covers business rule terminology, semantic definitions, business rule classification methodologies, and information system integration. Yet another conventional approach identifies the quick change in business rule specifications as an issue and suggests a robust and flexible business rule management scenario for enterprises to solve the problem. A further conventional application proposes a metamodel for business rule specification, a metamodel for business rule vocabulary, an XML representation for business rules, and vocabularies based on XML.
Conventional active databases are closely related to business rule processing in information systems. Traditional databases, also called passive databases, perform CRUD (create, retrieve, update and delete) operations at the request of users or client applications. Active databases enhance passive database capabilities by adding triggers and assertions that automatically perform operations based on predefined business rules. Those business rules usually have the recurring pattern of Event-Condition-Action (ECA): event determines when the business rules need to be evaluated; condition defines what is to be evaluated; and action specifies what to do when the condition is satisfied. Some conventional systems support business rule processing in the form of triggers and procedures.
Although this technology has proven to be useful, it would be desirable to present additional improvements. Directly applying those active database systems to business rule processing encounters limitations: events, conditions, and actions are mostly limited to database operations; business rules have poor portability due to lack of standards in trigger syntax, semantics, and execution behavior; there are limitations on number of triggers per table; trigger scheduling and interaction capabilities are limited; and integration with external applications is unsatisfactory.
Expert systems are related to business rule processing. An expert system is an information system that can solve problems in a domain by using information and analytical techniques developed by domain experts. Domain knowledge is usually encoded in business rules and an inference engine makes decisions based on these business rules and other available facts. Expert system business rules are in the form of Condition-Action (CA): the inference engine matches the business rule conditions with the facts in the working memory, and then executes actions in the matching business rules. One expert system uses a forward chaining inference engine and programs search working memory to find matching business rules for execution.
Although business rule processing for conventional technology has proven to be useful, it would be desirable to present additional improvements. Business rules are not static; business rules change frequently due to the changes in user requirements, company policies, government regulations, economic trends, etc. In conventional systems, business rule logic is embedded into the application logic. In conventional systems, business rule processing capabilities are widely dispersed and deeply embedded in many parts of the content management system such as in the client application, in the middle tier, and in the backend repository. Consequently, it is difficult to identify and change the business rule logic as required by dynamic business scenarios. Developers are required to know implementation details about where to make changes without affecting existing code.
Some conventional business rule applications comprise commercial off-the-shelf products that are developed by different parties. In this case, the change process is more difficult since interface standardization and compatibility problems may arise. When the upgrade to the business rule processing is completed, comprehensive testing and trial processing is required. The upgrade to the business rule processing can be disruptive because the existing content management system is typically brought offline before the upgraded system is operational.
In most existing architecture designs, the business logic and constraints are not abstracted out as business rules. Rather, the business logic and constraints are spread across various parts of system: in the client application, in the middle tier, and in the backend repository. These designs reveal many problems: the architecture is not resilient to frequent business logic changes; system development and maintenance cost is high because business rule processing implementation is tightly coupled; and there is no central fine-grained managerial control over the business rule execution, monitoring, and logging.
What is therefore needed is a system, a computer program product, and an associated method for automatically processing dynamic business rules in a content management system. The need for such a solution has heretofore remained unsatisfied.